﻿using mozhi.smarterp.Finance.Querys;
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace mozhi.smarterp.Finance
{
    public interface IBaseDataAppService<TDto, TCreateDto, TUpdateDto> : IApplicationService
        where TDto : BaseDataDto
        where TCreateDto : BaseDataCreateDto
        where TUpdateDto : BaseDataUpdateDto
    {
        Task<TDto> GetAsync(Guid id);
        Task<PagedResultDto<TDto>> FindAsync(PageQuery query);

        Task<TDto> CreateAsync(TCreateDto dto);

        Task<TDto> UpdateAsync(TUpdateDto dto);

        Task<TDto> DeleteAsync(Guid id);
    }
}
